package com.yousu.dashijixm.controller;

import com.yousu.dashijixm.pojo.Result;
import com.yousu.dashijixm.utils.AliOssUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * @Author: YouSu
 * @Version: 1.0
 * @CreateTime: 2023-11-28  20:01
 * 文件上传
 */
@RestController
public class FileUploadController {

    @PostMapping("/upload")
    //MultipartFile是SpringMVC提供简化上传操作的工具类。
    public Result<String> upload(MultipartFile file) {
        String originalFilename = file.getOriginalFilename();
        //使用UUID提供唯一的名称防止，名字重复造成的文件丢失，UUID + 原文件的后缀名 拼接
        String fileName = UUID.randomUUID().toString() +
                originalFilename.substring(originalFilename.lastIndexOf("."));
        //模拟文件上传，原本是要上传到云服务器上的，这里上传到了本地
//        file.transferTo(new File("D:\\heima_xm\\img\\" + fileName));
        //使用阿里云oss
        try{
            String url = AliOssUtils.uploadFile(fileName,file.getInputStream());
            return Result.success(url);
        }catch (Exception e){
            return Result.error(e.getMessage());
        }



    }
}
